#include <iostream>
#include <string>
using namespace std;

int main() {
    string n;
    getline(cin, n);
    int f = 1;

    while (!n.empty() && f == 1) {
        f = 0;
        while (n.find("()") != string::npos) {
            n.erase(n.find("()"), 2);
            f = 1;
        }
        while (n.find("[]") != string::npos) {
            n.erase(n.find("[]"), 2);
            f = 1;
        }
        while (n.find("{}") != string::npos) {
            n.erase(n.find("{}"), 2);
            f = 1;
        }
        while (n.find("<>") != string::npos) {
            n.erase(n.find("<>"), 2);
            f = 1;
        }
    }

    if (n.empty()) {
        cout << "True" << endl;
    } else {
        cout << "False" << endl;
    }

    return 0;
}

